//#define  _CRT_SECURE_NO_WARNINGS
//#include <vector>
//using namespace std;
//
//class Solution {
//public:
//    int m, n;
//    bool vis[300][300];
//    int ret;
//    int numIslands(vector<vector<char>>& grid) {
//        m = grid.size(), n = grid[0].size();
//        for (int i = 0; i < m; i++)
//        {
//            for (int j = 0; j < n; j++)
//            {
//                if(!vis[i][j] && grid[i][j] == '1')
//                    dfs(grid, i, j), ret++;
//            }
//        }
//        return ret;
//    }
//    int dx[4] = { 0, 0, 1, -1 };
//    int dy[4] = { 1, -1, 0 ,0 };
//    void dfs(vector<vector<char>>& nums, int i, int j)
//    {
//        for (int k = 0; k < 4; k++)
//        {
//            int x = i + dx[k], y = j + dy[k];
//            if (x >= 0 && x < m && y >= 0 && y < n && nums[x][y] == '1' && !vis[x][y])
//            {
//                vis[x][y] = true;
//                dfs(nums, x, y);
//            }
//        }
//    }
//};